﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Net;
using System.Net.Sockets;
using System.Threading;

namespace AgentLib
{
    [Serializable]
    public class Агент:MarshalByRefObject,Интерфейс_Агента
    {
        int порт;
        List<int> порты_агентов;//в тестовом варианте только порты, а в реальном будут еще и айпишники
        public Сообщение мои_данные;//столкнулся с проблемой, списки soap не хочет сериализовать, поэтому пока одиночное сообщение
 
        public Агент()
        {
            мои_данные = new Сообщение();
        }

        public void Отправить(Сообщение данные,int порт_получателя)
        {
            Агент прокси_удалённого_агента = (Агент)Activator.GetObject(
                typeof(Агент),
                "http://localhost:" + порт_получателя + "/Агент.soap");
            прокси_удалённого_агента.Получить(данные);
            return;
        }


        public void Получить(Сообщение полученные_данные)
        {
            мои_данные=полученные_данные;
            return;
        }
        [Serializable]
        public class Сообщение
        {
            public int количество;
            public string путь;
            public string хост;
        } 
    }
    
}
